<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>手写Promise</title>
</head>
<body>
    <!-- 引入自定义的 Promise 对象和方法，会覆盖原生的 Promise 对象及其方法 -->
    <script src="./Promise.js"></script>
    <script>
        // 此文件为测试手写 Promise 的相关功能，以便与原生功能相符合
        // 1. 声明 Promise 构造函数，传入一个 executor 函数作为参数
        // 2. 在 Promise 原型上添加 then() 方法，传入两个函数作为参数
        // 3. 添加 Promise 状态和结果两个属性
        // 4. 声明 resolve 和 reject 函数，改变状态和结果值，注意 this 的指向问题
        // 5. 利用 try ... catch(e) {} 实现对抛出错误的捕获
        // 6. 实现 Promise 对象状态只能够修改一次
        // 7. 根据 Promise 的状态执行不同的回调函数
        // 8. 实现异步操作的回调
        // 9. 指定多个回调
        // 10. 同步任务下 then() 方法返回结果
        // 11. 异步任务下 then() 方法返回结果
        // 12. then() 方法补充优化
        // 13. catch() 方法与异常穿透/值传递
        // 14. Promise.resolve() 方法封装
        // 15. Promise.reject() 方法封装
        // 16. Promise.all() 方法封装
        // 17. Promise.race() 方法封装
        // 18. 回调函数异步执行       
    </script>
</body>
</html>